package com.yc.cloud.admin.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 告警邮件配置属性
 *
 * @author JackGu
 * @since 2025-11-07
 */
@Data
@Component
@ConfigurationProperties(prefix = "alarm-email")
public class AlarmEmailProperties {

    /**
     * 是否启用邮件告警
     */
    private Boolean enabled = true;

    /**
     * 邮件接收人列表（逗号分隔）
     */
    private String recipients = "";

    /**
     * 是否异步发送邮件
     */
    private Boolean sendAsync = true;

    /**
     * 同一算法的邮件发送间隔（秒），默认3600秒（1小时）
     * 在间隔时间内，同一算法类型的告警只发送一次邮件
     */
    private Long sendIntervalSeconds = 3600L;

    /**
     * 获取邮件接收人列表
     */
    public List<String> getRecipientList() {
        if (recipients == null || recipients.trim().isEmpty()) {
            return new ArrayList<>();
        }
        return Arrays.stream(recipients.split(","))
                .map(String::trim)
                .filter(s -> !s.isEmpty())
                .toList();
    }
}

